%{
#include <stdio.h>
#include "gram.tab.h"
void printflex(char text[]) {
	printf("<%s:%s>",text,yytext);
}
void putStringVal()
{
  yylval.stringVal=malloc(yyleng + 1);
  if(yylval.stringVal == NULL)
  {
   perror("malloc failed");
   exit(EXIT_FAILURE);
  }
  strcpy(yylval.stringVal, yytext);
}

%}
KEYWORD new|JTree00|addObject|DefaultMutableTreeNode
SYMBOL        [A-Za-z][-_A-Za-z0-9]*
%%
\.  { return yytext[0]; }
=   { return yytext[0]; }
\(  { return yytext[0]; }
\)  { return yytext[0]; }
\"  { return yytext[0]; }
,   { return yytext[0]; }
;   { return yytext[0]; }
{KEYWORD} { putStringVal(); return KEYWORD; }
{SYMBOL} { putStringVal(); return SYMBOL; }
\"[^ \n]+\" { putStringVal(); return STRINGVALUE; }
[ \t\n] { printf("%s", yytext); }
.   { return yytext[0]; }
%%

